//package cn.lzc.jl.service.util.codec;
//
//import java.security.SecureRandom;
//
//import javax.crypto.Cipher;
//import javax.crypto.SecretKey;
//import javax.crypto.SecretKeyFactory;
//import javax.crypto.spec.DESKeySpec;
//
//import org.apache.tomcat.util.codec.binary.Base64;
//
//import cn.lzc.jl.service.util.constant.Constant;
//
///**
// * 
// * <URL加密业务处理类>
// * <功能详细描述>
// * 
// * @author  sunliang
// * @version  [版本号, 2018年8月30日]
// * @see  [相关类/方法]
// * @since  [产品/模块版本]
// */
//public class DESHelper
//{
//    /** 加密**/
//    private final static String DES = "DES";
//    
//    /** 秘钥 **/
//    private final static String KEY = "www.lzc.com";
//    
//    public DESHelper()
//    {
//    }
//    
//    public static String encrypt(String pliantext)
//        throws Exception
//    {
//        return encodeBase64(encryptDES(pliantext, KEY));
//    }
//    
//    public static String encrypt(String pliantext, String key)
//        throws Exception
//    {
//        return encodeBase64(encryptDES(pliantext, key));
//    }
//    
//    public static String decrypt(String ciphertext)
//        throws Exception
//    {
//        return decryptDES(decodeBase64(ciphertext.getBytes()), KEY);
//    }
//    
//    public static String decrypt(String ciphertext, String key)
//        throws Exception
//    {
//        return decryptDES(decodeBase64(ciphertext.getBytes()), key);
//    }
//    
//    /**
//     *  base64编码
//     * @param binaryData
//     * @return
//     * @throws Exception
//     */
//    private static String encodeBase64(byte[] binaryData)
//        throws Exception
//    {
//        try
//        {
//            return Base64.encodeBase64String(binaryData);
//        }
//        catch (Exception e)
//        {
//            e.printStackTrace();
//            throw new RuntimeException("BASE64编码失败!");
//        }
//    }
//    
//    /**
//     * Base64解码
//     * @param binaryData
//     * @return
//     */
//    private static byte[] decodeBase64(byte[] binaryData)
//    {
//        try
//        {
//            return Base64.decodeBase64(binaryData);
//        }
//        catch (Exception e)
//        {
//            e.printStackTrace();
//            throw new RuntimeException("BASE64解码失败！");
//        }
//    }
//    
//    public static byte[] encryptDES(String data, String key)
//    {
//        
//        try
//        {
//            // 生成一个可信任的随机数源 ,  SHA1PRNG: 仅指定算法名称
//            SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
//            // 从原始密钥数据创建DESKeySpec对象
//            DESKeySpec deskey = new DESKeySpec(key.getBytes(Constant.EN_CODE));
//            
//            //创建一个密匙工厂，然后用它把DESKeySpec转换成
//            SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
//            SecretKey secretKey = keyFactory.generateSecret(deskey);
//            //Cipher对象实际完成加密操作
//            Cipher cipher = Cipher.getInstance(DES);
//            //用密匙初始化Cipher对象,
//            cipher.init(Cipher.ENCRYPT_MODE, secretKey, random);
//            //现在，获取数据并加密
//            //正式执行加密操作
//            return cipher.doFinal(data.getBytes(Constant.EN_CODE));
//            
//        }
//        catch (Exception e)
//        {
//            e.printStackTrace();
//        }
//        return null;
//    }
//    
//    /**
//     * 
//     * <解密操作>
//     * <功能详细描述>
//     * @param data 数据
//     * @param key 秘钥
//     * @return
//     * @see [类、类#方法、类#成员]
//     */
//    public static String decryptDES(byte[] data, String key)
//    {
//        try
//        {
//            // 算法要求有一个可信任的随机数源,  SHA1PRNG: 仅指定算法名称
//            SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
//            // 创建一个DESKeySpec对象
//            DESKeySpec desKeySpec = new DESKeySpec(key.getBytes(Constant.EN_CODE));
//            // 创建一个密匙工厂
//            SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
//            // 将DESKeySpec对象转换成SecretKey对象
//            SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
//            // Cipher对象实际完成解密操作
//            Cipher cipher = Cipher.getInstance(DES);
//            // 用密匙初始化Cipher对象
//            cipher.init(Cipher.DECRYPT_MODE, secretKey, random);
//            // 真正开始解密操作
//            return new String(cipher.doFinal(data), Constant.EN_CODE);
//        }
//        catch (Exception e)
//        {
//            e.printStackTrace();
//        }
//        return null;
//    }
//    
//    public static void main(String[] args)
//        throws Exception
//    {
//        String s = "{\"productId\":\"P01001000100003\"}";
//        String enString = encrypt(s);
//        System.out.println("加密后的字串是：" + enString);
//        String deString = decrypt(enString);
//        System.out.println("解密后的字串是：" + deString);
//        
//    }
//}
